package net.ericaro.neojavagen.classes;

/**
 * <b>EnumConstant</b> ::= <{@link net .ericaro .neojavagen .packages .JavadocComment JavadocComment}>? <{@link net .ericaro .neojavagen .interfaces .Annotations
 * Annotations}>? <{@link net .ericaro .neojavagen .types .Identifier Identifier}> "(" <{@link net .ericaro .neojavagen .expressions .Arguments Arguments}>? ")"
 * <{@link net .ericaro .neojavagen .classes .ClassBody ClassBody}>?
 * 
 * @author eric@ericaro.net
 */
public class EnumConstant extends net.ericaro.neojavagen.JavaPartComposition {
	private net.ericaro.neojavagen.interfaces.Annotations annotations;

	private net.ericaro.neojavagen.expressions.Arguments arguments;

	private net.ericaro.neojavagen.classes.ClassBody classBody;

	private net.ericaro.neojavagen.types.Identifier identifier;

	private net.ericaro.neojavagen.packages.JavadocComment javadocComment;

	public EnumConstant(net.ericaro.neojavagen.packages.JavadocComment javadocComment, net.ericaro.neojavagen.interfaces.Annotations annotations, net.ericaro.neojavagen.types.Identifier identifier, net.ericaro.neojavagen.expressions.Arguments arguments, net.ericaro.neojavagen.classes.ClassBody classBody) {
		super();
		this.javadocComment = javadocComment;
		this.annotations = annotations;
		this.identifier = identifier;
		this.arguments = arguments;
		this.classBody = classBody;
	}

	public EnumConstant(net.ericaro.neojavagen.types.Identifier identifier) {
		this.javadocComment = null;
		this.annotations = null;
		this.identifier = identifier;
		this.arguments = null;
		this.classBody = null;
	}

	public net.ericaro.neojavagen.interfaces.Annotations getAnnotations() {
		return annotations;
	}

	public net.ericaro.neojavagen.expressions.Arguments getArguments() {
		return arguments;
	}

	public net.ericaro.neojavagen.classes.ClassBody getClassBody() {
		return classBody;
	}

	public net.ericaro.neojavagen.types.Identifier getIdentifier() {
		return identifier;
	}

	public net.ericaro.neojavagen.packages.JavadocComment getJavadocComment() {
		return javadocComment;
	}

	public void setAnnotations(net.ericaro.neojavagen.interfaces.Annotations annotations) {
		this.annotations = annotations;
	}

	public void setArguments(net.ericaro.neojavagen.expressions.Arguments arguments) {
		this.arguments = arguments;
	}

	public void setClassBody(net.ericaro.neojavagen.classes.ClassBody classBody) {
		this.classBody = classBody;
	}

	public void setIdentifier(net.ericaro.neojavagen.types.Identifier identifier) {
		this.identifier = identifier;
	}

	public void setJavadocComment(net.ericaro.neojavagen.packages.JavadocComment javadocComment) {
		this.javadocComment = javadocComment;
	}

	@Override
	public java.lang.String toString() {
		return print(javadocComment, annotations, identifier, "(", arguments, ")", classBody);
	}
}
